package com.itheima.d3_regex;

//目标：体验正则表达式
public class Demo1 {
    public static void main(String[] args) {
        /**
         * 正则表达式的作用：可以用一些规定的字符来制定规则，并用来校验数据格式的合法性
         * 需求：现在要求校验一个qq号码是否正确，6位及20位之内，必须全部是数字
         */
        //checkQQPrevious("23a234234");
        checkQQRegular("23a234234");
    }

    //1.使用已有知识解决
    public static void checkQQPrevious(String qq) {
        //1.1 判断qq号长度是否合法
        int length = qq.length();
        if (qq == null || length <= 6 || length >= 20) {
            System.out.println("非法");
            return;
        }
        //1.2 检查qq号内容是否都是数字，遍历字符串
        for (int i = 0; i < qq.length(); i++) {
            //1.3 获取索引i对应的字符串中的字符
            char c = qq.charAt(i);
            //1.4 判断字符c是否不在编码表中'0'字符到'9'字符之间
            //有任意一个不是，则整个qq号都是非法的
            if (c < '0' || c > '9') {
                System.out.println("非法");
                return;
            }
        }
        //1.5 如果到此时方法还未结束，则证明QQ号合法
        System.out.println("合法");
    }

    //2.使用正则表达式解决
    public static void checkQQRegular(String qq) {
        if (qq != null && qq.matches("\\d{6,20}")) {
            System.out.println("合法");
        } else {
            System.out.println("非法");
        }
    }


}
